solid design principles interview questions